Honoで簡単なREST APIを開発する
構成
Deno
Hono
zod
@hono/zod-openapi
@hono/swagger-ui
前提
簡単につくれること
仕様を簡単に確認できること
Deno Deployで公開しても問題ないこと
認証機能が設定されている
認証
ドキュメント:Basic認証
API:Bearer認証
バリデーション
バリデーションエラーのハンドリングはdefaultHookで一律処理する
特定の箇所だけ処理を変えたいときはオーバライドできる
参考資料
https://zenn.dev/aishift/articles/a3dc8dcaac6bfa#defaulthook
https://github.com/honojs/middleware/tree/main/packages/zod-openapi#a-dry-approach-to-handling-validation-errors
スキーマ
エラースキーマはステータスごとに用意
ファクトリ関数で選択?
エラーハンドリング
500系のエラーはスタックトレース含めログ出力したい
ロガー
std/logをカスタマイズ?
openapi doc
認証のドキュメントどうするか
方針
Open APIの仕様に異常系は記載しない。面倒だから
利用する側はステータスコードでハンドリングすればよい
クライアントはhono/clientで型安全にアクセスする
Honoオブジェクトはメソッドチェーンで型を伝搬させる。その型は下記のように返す
code:hono.ts
export type AppType = typeof app;
export default app;
テストにはtestClientを使う
https://hono.dev/docs/helpers/testing
HonoでAPIのドキュメントを自動生成する
middleware/packages/zod-openapi - GitHub
【最強】Honoフル活用事例2024年
Zod OpenAPI - Hono
public.icon